from helpers.cluster import ClickHouseCluster


def test_yaml_full_conf():
    # all configs are in YAML
    cluster = ClickHouseCluster(
        __file__, zookeeper_config_path="configs/config.d/zookeeper.yaml"
    )

    all_confd = [
        "configs/config.d/0_common_instance_config.yaml",
        "configs/config.d/access_control.yaml",
        "configs/config.d/error_log.yaml",
        "configs/config.d/keeper_port.yaml",
        "configs/config.d/logging_no_rotate.yaml",
        "configs/config.d/log_to_console.yaml",
        "configs/config.d/macros.yaml",
        "configs/config.d/metric_log.yaml",
        "configs/config.d/more_clusters.yaml",
        "configs/config.d/part_log.yaml",
        "configs/config.d/path.yaml",
        "configs/config.d/query_masking_rules.yaml",
        "configs/config.d/query_metric_log.yaml",
        "configs/config.d/tcp_with_proxy.yaml",
        "configs/config.d/test_cluster_with_incorrect_pw.yaml",
        "configs/config.d/text_log.yaml",
        "configs/config.d/zookeeper.yaml",
    ]

    all_userd = [
        "configs/users.d/allow_introspection_functions.yaml",
        "configs/users.d/log_queries.yaml",
    ]

    node = cluster.add_instance(
        "node",
        base_config_dir="configs",
        main_configs=all_confd,
        user_configs=all_userd,
        with_zookeeper=False,
        main_config_name="config.yaml",
        users_config_name="users.yaml",
        copy_common_configs=False,
        config_root_name="clickhouse",
    )

    try:
        cluster.start()
        assert (
            node.query(
                "select value from system.settings where name = 'max_memory_usage'"
            )
            == "10000000000\n"
        )
        assert (
            node.query(
                "select value from system.settings where name = 'max_block_size'"
            )
            == "64999\n"
        )

    finally:
        cluster.shutdown()
